Within the field of computing, many scenarios involve a fulfillment of a query submitted by a user, such as a web search engine fulfilling a query over a set of websites; a media search engine fulfilling a query over a media library; and a database query processing engine fulfilling a query over a relational data set. A user typically specifies the query as a set of keywords or criteria, which are compared with the items of the targeted data set, often facilitated by resources such as hash-based indices and binary search trees, to identify items that match the query. Such items are further evaluated to estimate a result probability that the item fulfills the query; sorted in order of descending probability; and presented to the user as the results of the query.
In many such scenarios, a variety of circumstances may cause the query submitted by the user not to reflect the intent of the user. For example, the user may have misspelled a token, such as the name of an individual, or may not have used terms that describe the requested items with optimal accuracy. Some searches may be difficult to specify; e.g., a search for information about the musical group “The Who” is often difficult for search engines to evaluate, due to the commonality of the keywords “the” and “who” in many bodies of English text. Ambiguity may also arise, e.g., where the user specifies an ambiguous keyword that may describe one of several topics; e.g., a search for the keyword “matrix” may refer to the mathematics concept, a structural arrangement arising in the fields of chemistry and materials science, or a popular film.
Due to these sources of ambiguity, devices that fulfill user-expressed queries may provide additional resources that may assist the user if the presented search results do not reflect the intent of the user. As a first such example, if a keyword is likely to represent a misspelling, the device may present a suggestion of an alternative spelling that may provide more accurate results. As a second such example, the device may present suggestions for helpful options if the user exhausts the result set without finding a desired result (e.g., “try broadening your search or using different terms”). These and other techniques may provide recourse for queries that fail to yield results that fulfill the intent of the user's query.